package com.zhdl.modules.prefiresys.entity;

import com.project.common.bean.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * 防区报警记录
 *
 * @author ACodeYuan
 * @Description:
 * @date 2023/7/21 16:00
 * @Version Y-1.0
 */

@EqualsAndHashCode(callSuper = true)
@Data
@Entity
@Table(name = "defarea_alarm_rec")
public class DefAreaAlarmRec extends BaseEntity<DefAreaAlarmRec, String> {
    /**
     * ID
     */
    @Id
    @Column(length = 32)
    private String id;

    /**
     * 探测器ID
     */
    @Column(length = 32, nullable = false)
    private String detectorId; //deteId

    /**
     * 防区ID
     */
    @Column(length = 32, nullable = false)
    private String areaId;

    /**
     * 当前报警状态 0x40 U8 1防区 报警状态 0 正常；1 预警；2 三级报警；3 二级报警；4 一级报警；5 报警保持；
     * <p>
     * alarmStatus=1    预警	         声光报警 推送App信息
     * alarmStatus=2	三级报警      接到用户操作指令后断电
     * alarmStatus=3	二级报警      自动强制断电
     * alarmStatus=4	一级报警	    自动强制断电;启动灭火装置
     */
    @Column(nullable = false, columnDefinition = "TINYINT default 0")
    private byte alarmStatus;

    /**
     * 下一个状态，在下一个状态发生时保存当前记录，也是当前状态的保持时间
     */
    @Column(nullable = false, columnDefinition = "TINYINT default 0")
    private byte nextAlarmStatus;

    /**
     * 当前状态发生的时间
     */
    @Column(nullable = false, columnDefinition = "datetime default current_timestamp")
    private String startTime;

    /**
     * 当前状态结束的时间，下一个状态发生的时间
     */
    @Column(nullable = false, columnDefinition = "datetime default current_timestamp")
    private String endTime;

    /**
     * 持续时长，单位秒
     */
    @Column(nullable = false)
    private long durationSec;

    /**
     * 6-8
     * 上报标志
     */
    @Column(nullable = true, columnDefinition = "TINYINT default 0")
    private Integer reportStatus;


    /**
     * 6-19 数据分析统计需要
     * 微粒子百分比
     */
    private float particlePercent;


    /**
     * 6-19 数据分析统计需要
     * 烟雾百分比
     */
    private float smokePercent;

    /**
     * 事件Id
     */
    @Column(name = "event_id")
    private String eventId;

}
